<?php

namespace app\middleware;

use app\model\common\Web;

class checkUserToken
{
    public function handle($request, \Closure $next)
    {
        $tag = 'user';
        $model = '\\app\\api\\model\\User';
        // token是否存在
        $token = $request->header('token');//dd($token);
//        return ApiException(22);
        if (!$token){
//            return showError('令牌无效');
            return showError('__MISSING_PERMISSION__');
//            return ApiException(Web::WECHAT_LOGIN_FAILURE);
        }
        // 获取用户信息
        $user = cms_getUser([
            'token'=>$token,
            'tag'=>$tag
        ]);
        if (!$user){
            return showError('__MISSING_PERMISSION__');
        }
//        return ApiException(Web::WECHAT_NON_USER, 408);

//        if (!$user){
//            return ApiException('请先登录！');
//        }else{
//            //token正确 则验证是否有绑定手机
////            var_dump($user['phone']);ApiException('请先登录！');
//            if(!$user['phone']){
//                return showError('请先绑定手机号码', 20001);
//            }else{
//                return showError('2');
//            }
//        }

        // 成功，返回当前用户实例
        if ($model) {
            // 当前用户实例
//            $request->UserModel = $model::with(['userWallet'])->find($user['id']);
            $request->UserModel = $model::find($user['id']);
//            $request->UserModel = $user['id'];
//            if($request->UserModel->status == 0){
//                return ApiException(Web::WECHAT_DISABLE_USER);
//            }
        }else{
            // 当前用户数据（数组）
//            $request->userInfo = $user;
            $request->UserModel = 1;
        }
//        return showError('11');
        return $next($request);
    }
}
